<?php

return [
    'user_account' => [
        'phone',
        'email',
        'password_hash',
        'status',
        'invited_by',
        'register_channel',
        'primary_region_id',
        'last_login_time',
    ],
    'user_profile' => [
        'user_id',
        'nickname',
        'real_name',
        'avatar',
        'gender',
        'id_card',
        'extra',
    ],
    'user_auth' => [
        'user_id',
        'identity_type',
        'identifier',
        'credential',
        'metadata',
        'unionid',
        'status',
    ],
    'user_refresh_token' => [
        'user_id',
        'jti',
        'device_fingerprint',
        'expires_time',
        'meta',
        'revoked_time',
        'revoked_reason',
        'status',
    ],
    'user_verification_case' => [
        'user_id',
        'type',
        'status',
        'region_id',
        'inviter_user_id',
        'submitted_by',
        'reviewed_by',
        'submitted_at',
        'reviewed_at',
        'remark',
        'payload',
    ],
    'user_identity' => [
        'user_id',
        'identity_type',
        'org_id',
        'region_id',
        'status',
        'source',
        'verification_case_id',
        'invited_by',
        'verified_at',
        'remark',
    ],
    'user_individual' => [
        'user_id',
        'verification_case_id',
        'real_name',
        'id_card',
        'id_card_front',
        'id_card_back',
        'valid_from',
        'valid_to',
        'status',
        'submitted_at',
        'verified_at',
        'verified_by',
        'remark',
    ],
    'user_company' => [
        'user_id',
        'verification_case_id',
        'company_name',
        'license_code',
        'license_photo',
        'legal_rep',
        'address',
        'scope',
        'region_id',
        'org_id',
        'inviter_user_id',
        'extra',
        'ocr_raw',
        'status',
        'submitted_at',
        'verified_at',
        'verified_by',
        'remark',
    ],

    'org' => [
        'name',
        'org_type',
        'warehouse_code',
        'logo_url',
        'region_id',
        'owner_user_id',
        'inviter_user_id',
        'approved_by',
        'approved_at',
        'status',
        'extra',
    ],
    'org_profile' => [
        'org_id',
        'license_number',
        'license_photo',
        'tax_number',
        'legal_rep',
        'registered_capital',
        'biz_scope',
        'established_at',
        'extra',
    ],
    'org_contact' => [
        'org_id',
        'contact_name',
        'contact_phone',
        'contact_email',
        'bank_name',
        'bank_account',
        'bank_account_name',
        'invoice_title',
        'invoice_taxno',
        'extra',
    ],
    'org_address' => [
        'org_id',
        'contact_name',
        'contact_phone',
        'province',
        'city',
        'district',
        'address',
        'postal_code',
        'is_default',
        'address_type',
    ],
    'org_member' => [
        'org_id',
        'user_id',
        'member_role',
        'position',
        'status',
        'invited_by',
        'joined_at',
    ],
    'org_invitation' => [
        'org_id',
        'inviter_user_id',
        'invitee_user_id',
        'invitee_phone',
        'invitee_email',
        'invite_code',
        'status',
        'expires_time',
        'accepted_time',
        'remark',
    ],

    'region' => [
        'name',
        'code',
        'parent_id',
        'level',
        'path',
        'sort',
        'status',
        'seller_customer_count',
        'buyer_customer_count',
    ],
    'region_user' => [
        'region_id',
        'user_id',
        'role_type',
        'is_primary',
        'status',
        'config',
    ],

    'auth_role' => [
        'name',
        'slug',
        'scope_type',
        'org_id',
        'description',
        'status',
    ],
    'auth_permission' => [
        'name',
        'code',
        'description',
        'client_type',
        'status',
    ],
    'auth_role_perm' => [
        'role_id',
        'permission_id',
    ],
    'auth_user_role' => [
        'user_id',
        'role_id',
        'org_id',
        'region_id',
        'status',
    ],

    'prod_category' => [
        'name',
        'slug',
        'parent_id',
        'level',
        'path',
        'icon_url',
        'cover_url',
        'description',
        'content',
        'sort',
        'is_visible',
    ],
    'prod_brand' => [
        'name',
        'slug',
        'logo_url',
        'banner_url',
        'description',
        'content',
        'origin_country',
        'owner_org_id',
        'sort',
        'is_visible',
    ],
    'prod' => [
        'org_id',
        'category_id',
        'brand_id',
        'name',
        'spu_code',
        'summary',
        'cover_url',
        'gallery',
        'attributes',
        'status',
        'audit_status',
        'audit_remark',
        'audit_at',
        'audit_by',
    ],
    'prod_sku' => [
        'prod_id',
        'sku_code',
        'specs',
        'cost_price',
        'sale_price',
        'inventory',
        'alert_stock',
        'status',
    ],

    'cart' => [
        'buyer_id',
        'buyer_org_id',
        'seller_org_id',
        'product_id',
        'sku_id',
        'qty',
        'snapshot_price',
        'snapshot_currency',
        'snapshot_attrs',
        'source_type',
        'channel',
        'status',
        'remark',
    ],
    'cart_stock' => [
        'verify_no',
        'buyer_id',
        'buyer_org_id',
        'seller_id',
        'seller_org_id',
        'region_id',
        'assist_user_id',
        'product_id',
        'sku_id',
        'buyer_qty',
        'snapshot_price',
        'snapshot_currency',
        'snapshot_product',
        'buyer_time',
        'buyer_remark',
        'buyer_media',
        'seller_qty',
        'seller_remark',
        'seller_media',
        'seller_time',
        'status',
        'audit_status',
        'audit_remark',
        'audit_time',
        'order_id',
        'order_no',
    ],
    'cart_future' => [
        'inquiry_no',
        'buyer_id',
        'buyer_org_id',
        'seller_id',
        'seller_org_id',
        'region_id',
        'assist_user_id',
        'product_id',
        'sku_id',
        'buyer_qty',
        'buyer_expected_price',
        'buyer_expected_currency',
        'buyer_expected_date',
        'buyer_remark',
        'buyer_media',
        'buyer_time',
        'seller_price',
        'seller_currency',
        'seller_delivery_date',
        'seller_remark',
        'seller_media',
        'seller_time',
        'snapshot_product',
        'status',
        'quote_count',
        'last_quote_time',
        'order_id',
        'order_no',
    ],

    'orders' => [
        'order_no',
        'buyer_user_id',
        'buyer_org_id',
        'seller_user_id',
        'seller_org_id',
        'inviter_user_id',
        'service_user_id',
        'status',
        'buyer_payable_amount',
        'buyer_paid_amount',
        'seller_receivable_amount',
        'platform_commission_amount',
        'amount_snapshot',
        'status_history',
        'submitted_at',
        'paid_at',
        'shipped_at',
        'finished_at',
        'cancelled_at',
        'cancelled_reason',
    ],
    'order_items' => [
        'order_id',
        'product_id',
        'sku_id',
        'product_snapshot',
        'unit_price',
        'qty',
        'seller_amount',
        'buyer_amount',
        'platform_commission',
        'discount_amount',
        'status',
    ],
    'order_payments' => [
        'order_id',
        'pay_no',
        'pay_method',
        'pay_amount',
        'currency',
        'status',
        'third_party_no',
        'pay_time',
        'refund_time',
        'pay_data',
    ],
    'order_refunds' => [
        'order_id',
        'order_item_id',
        'refund_no',
        'refund_type',
        'reason',
        'apply_amount',
        'approved_amount',
        'buyer_amount',
        'seller_amount',
        'platform_amount',
        'status',
        'applicant_id',
        'approver_id',
        'approve_time',
        'complete_time',
        'remark',
    ],
    'order_logs' => [
        'order_id',
        'operator_user_id',
        'action',
        'before_status',
        'after_status',
        'remark',
        'payload',
    ],

    'shipment_company' => [
        'name',
        'code',
        'contact_name',
        'contact_phone',
        'contact_email',
        'address',
        'remark',
        'status',
    ],
    'shipments' => [
        'order_id',
        'pickup_task_id',
        'shipment_no',
        'company_id',
        'status',
        'weight',
        'fee',
        'sender_snapshot',
        'receiver_snapshot',
        'created_by',
        'delivered_at',
        'remark',
    ],
    'shipment_traces' => [
        'shipment_id',
        'status',
        'description',
        'occurred_at',
        'location',
        'created_by',
    ],
    'pickup_tasks' => [
        'order_id',
        'task_no',
        'service_user_id',
        'company_id',
        'status',
        'scheduled_at',
        'completed_at',
        'remark',
    ],

    'commission_rule' => [
        'name',
        'scope',
        'category_id',
        'org_id',
        'platform_rate',
        'inviter_rate',
        'service_rate',
        'status',
        'effective_at',
        'expired_at',
        'remark',
    ],
    'commission_ledger' => [
        'order_id',
        'order_item_id',
        'rule_id',
        'beneficiary_type',
        'beneficiary_id',
        'amount',
        'currency',
        'rate',
        'status',
        'settled_at',
        'remark',
    ],
    'seller_statement' => [
        'statement_no',
        'seller_org_id',
        'period_start',
        'period_end',
        'total_order_amount',
        'total_refund_amount',
        'commission_amount',
        'payable_amount',
        'paid_amount',
        'status',
        'generated_at',
        'confirmed_at',
        'invoiced_at',
        'paid_at',
        'operator_user_id',
        'inviter_user_id',
        'service_user_id',
        'remark',
    ],
    'seller_statement_item' => [
        'statement_id',
        'order_id',
        'order_amount',
        'refund_amount',
        'commission_amount',
        'net_amount',
        'status',
        'remark',
    ],
    'invoice_request' => [
        'statement_id',
        'invoice_no',
        'invoice_type',
        'amount',
        'tax_rate',
        'tax_amount',
        'status',
        'submitted_at',
        'reviewed_at',
        'reviewer_id',
        'reject_reason',
    ],
    'payout' => [
        'statement_id',
        'payout_no',
        'amount',
        'currency',
        'pay_method',
        'pay_account',
        'status',
        'scheduled_at',
        'paid_at',
        'remark',
    ],
    'platform_balance' => [
        'account_code',
        'name',
        'balance',
        'currency',
        'status',
        'remark',
    ],
    'platform_balance_log' => [
        'balance_id',
        'change_no',
        'change_type',
        'amount',
        'direction',
        'reference_type',
        'reference_id',
        'operator_user_id',
        'remark',
    ],

    'sys_config' => [
        'config_key',
        'value_type',
        'config_value',
        'description',
        'category',
        'status',
    ],
    'sys_menu' => [
        'parent_id',
        'type',
        'name',
        'identifier',
        'path',
        'component',
        'redirect',
        'meta',
        'permission_code',
        'client_type',
        'sort',
        'is_visible',
        'status',
    ],
    'sys_operation_log' => [
        'user_id',
        'username',
        'action',
        'method',
        'path',
        'params',
        'ip',
        'user_agent',
        'status_code',
        'message',
    ],

    'notify_template' => [
        'code',
        'name',
        'channel',
        'title',
        'content',
        'variables',
        'status',
        'remark',
    ],
    'notify_message' => [
        'template_code',
        'channel',
        'payload',
        'status',
        'send_attempts',
        'last_error',
        'scheduled_at',
        'sent_at',
    ],
    'notify_recipient' => [
        'message_id',
        'user_id',
        'channel_identifier',
        'status',
        'sent_at',
        'fail_reason',
    ],
];
